LinuxQMISDK-Lite  SLQS04.00.27
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
QmuxTransport.h
Go to the documentation of this file.
1 
6 #ifndef __QMUX_TRANSPORT_H__
7 #define __QMUX_TRANSPORT_H__
8 
9 
10 #include <stdint.h>
11 #include <stdbool.h>
12 #include <pthread.h>
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 
19 #define QCQMI_NODE_NAME_PREFIX "qcqmi"
20 #define MAX_QMI_CLIENT 255
21 #define MAX_QMI_CLIENT_ID 255
22 #define INVALID_CLIENT_ID 255
23 #define INVALID_TRANSACTION_ID 0
24 // Forward decl.
25 struct QmiService;
26 
27 
38 typedef struct
39 {
40  bool useQcqmi;
41  char *devicePath;
44 
82 typedef struct QmuxTransport
83 {
84  bool useMbim;
85  void* pDataLayer;
86  int deviceFd;
87  int shutdownFd; // FD of shutdown event.
88  struct QmiService* qmiServiceList; // List of QMI services this transport is handling.
89  pthread_mutex_t writeLock; // Protect write operations.
90  pthread_mutex_t qmiServiceListLock;
91  pthread_t readThread;
92  QcqmiService qcqmi; //SUPPORT_QCQMI
94 
109 int QmuxTransport_Initialize(QmuxTransport* pThis, char *devicePath, bool useMbim, void* pInterfaceSpecific);
110 
117 
124 void QmuxTransport_AttachQmiService(QmuxTransport* pThis, struct QmiService* pQmiService);
125 
132 void QmuxTransport_DetachQmiService(QmuxTransport* pThis, struct QmiService* pQmiService);
133 
147  QmuxTransport* pThis,
148  uint8_t qmiServiceType,
149  uint8_t qmiClientId,
150  uint16_t qmiTransactionId,
151  uint8_t* qmiPacket,
152  uint16_t qmiPacketSize
153  );
154 
155 #ifdef __cplusplus
156 } /* extern "C" { */
157 #endif
158 
159 #endif //__QMUX_TRANSPORT_H__
pthread_mutex_t qmiServiceListLock
Definition: QmuxTransport.h:90
struct QmiService * qmiServiceList
Definition: QmuxTransport.h:88
bool useMbim
Definition: QmuxTransport.h:84
char * devicePath
Definition: QmuxTransport.h:41
pthread_mutex_t writeLock
Definition: QmuxTransport.h:89
void * pDataLayer
Definition: QmuxTransport.h:85
int QmuxTransport_Initialize(QmuxTransport *pThis, char *devicePath, bool useMbim, void *pInterfaceSpecific)
int deviceFd
Definition: QmuxTransport.h:86
void QmuxTransport_AttachQmiService(QmuxTransport *pThis, struct QmiService *pQmiService)
Definition: QmuxTransport.h:38
int QmuxTransport_SendQmiPacket(QmuxTransport *pThis, uint8_t qmiServiceType, uint8_t qmiClientId, uint16_t qmiTransactionId, uint8_t *qmiPacket, uint16_t qmiPacketSize)
pthread_t readThread
Definition: QmuxTransport.h:91
bool useQcqmi
Definition: QmuxTransport.h:40
bool readyToRead
Definition: QmuxTransport.h:42
int shutdownFd
Definition: QmuxTransport.h:87
QcqmiService qcqmi
Definition: QmuxTransport.h:92
void QmuxTransport_DetachQmiService(QmuxTransport *pThis, struct QmiService *pQmiService)
struct QmuxTransport QmuxTransport
void QmuxTransport_ShutDown(QmuxTransport *pThis)
Definition: QmiService.h:88
Definition: QmuxTransport.h:82

Copyright (c) 2011-2015 Sierra Wireless, Inc. All rights reserved